// pages/dailyperformance/dailyperformance.js
import http from '../../utils/request.js';

Page({
    data: {
        userInfo: {
            username: '张经理',
            avatar: '/images/avatar.png'
        },
        currentDate: '',
        templates: [], // 所有模板数据
        filteredTemplates: [], // 过滤后的模板数据
        searchKeyword: '', // 搜索关键词
        sortOrder: 'default', // 排序方式: default-默认优先, recent-最近更新
        todayRecord: null, // 今日业绩记录
        hasCheckedLogin: false // 新增登录检查状态标记
    },

    // ====================== 登录状态检查 ======================  
    checkLoginStatus() {
      try {
        const userInfo = wx.getStorageSync('userInfo');
        
        // 新增用户名读取逻辑
        const userName = userInfo.name || '未知用户'; // 添加默认值

        if (!userInfo?.employee_number) {
          this.showLoginAlert();
          return;
        }
        
        this.setData({
          employeeNumber: userInfo.employee_number.trim(),
          userName: userName // 新增用户名存储
        });
        
        // 登录检查通过后标记为已完成
        this.setData({ hasCheckedLogin: true }, () => {
          // 登录检查通过后才加载用户信息和其他数据
          this.loadUserInfo();
          this.loadTemplates();
          this.checkTodayRecord();
        });
        
      } catch (error) {
        console.error('存储读取失败:', error);
        this.showLoginAlert();
      }
    },
  
    showLoginAlert() {
        wx.showModal({
          title: '未登录',
          content: '请先登录后再使用该功能',
          confirmText: '去登录',
          cancelText: '返回首页',
          success: (res) => {
            if (res.confirm) {
              wx.reLaunch({ url: '/pages/user/user' });
            } else if (res.cancel) {
              if (getCurrentPages().length > 1) {
                wx.navigateBack({ delta: 1 });
              } else {
                wx.reLaunch({ url: '/pages/home/home' });
              }
            }
          },
          fail: (err) => {
            console.error('弹窗调用失败:', err);
          }
        });
    },

    async loadUserInfo() {
        try {
            // 确保登录检查已完成
            if (!this.data.hasCheckedLogin) return;
            
            const res = await http.get('/employee/update');
            if (res.status === 'success') {
                this.setData({ userInfo: res.data });
                
                // 检查是否为营销主管且有机构代码
                if (res.data.job_title === '营销主管' && res.data.organization_code) {
                    wx.showModal({
                        title: '业绩统计',
                        content: '您有权限查看业绩统计，是否立即进入？',
                        confirmText: '进入',
                        cancelText: '暂不',
                        success: (modalRes) => {
                            if (modalRes.confirm) {
                                wx.navigateTo({ 
                                    url: '/pages/dailyperformance/statistics/index' 
                                });
                            }
                        }
                    });
                }
            }
        } catch (error) {
            wx.showToast({ title: '数据加载失败', icon: 'none' });
        }
    },
    
    onShow() {
        console.log('[TRACE] 页面显示');
        // 仅在首次显示或登录状态未检查时触发
        if (!this.data.hasCheckedLogin) {
            this.checkLoginStatus();
        } else {
            // 已登录状态只需检查今日记录
            this.checkTodayRecord();
        }
    },

    onLoad() {
        this.setCurrentDate();
        // 只初始化一次登录检查
        this.checkLoginStatus();
    },

    // 设置当前日期
    setCurrentDate() {
        const date = new Date();
        const year = date.getFullYear();
        const month = date.getMonth() + 1;
        const day = date.getDate();
        const week = ['日', '一', '二', '三', '四', '五', '六'][date.getDay()];

        this.setData({
            currentDate: `${year}年${month}月${day}日 星期${week}`
        });
    },

    // 加载模板数据
    async loadTemplates() {
        try {
            wx.showLoading({
                title: '加载中...'
            });
            const res = await http.get('/performance_templates');

            if (res.status === 'success') {
                this.setData({
                    templates: res.data,
                    filteredTemplates: res.data
                });
            } else {
                wx.showToast({
                    title: '加载失败',
                    icon: 'error'
                });
            }
        } catch (error) {
            wx.showToast({
                title: '网络错误',
                icon: 'error'
            });
        } finally {
            wx.hideLoading();
        }
    },

    // 检查今日是否填报
    async checkTodayRecord() {
        try {
            const today = new Date().toISOString().split('T')[0]; // 获取今天的日期字符串，例如：2025-06-16
            const res = await http.get(`/performance_records?today=${today}`);

            if (res.status === 'success' && res.data.records.length > 0) {
                this.setData({
                    todayRecord: res.data.records[0]
                });
            }
        } catch (error) {
            console.error('检查今日记录失败:', error);
        }
    },

    // 搜索输入处理
    onSearchInput(e) {
        const keyword = e.detail.value.toLowerCase();
        this.setData({
            searchKeyword: keyword
        });

        const filtered = this.data.templates.filter(template =>
            template.template_name.toLowerCase().includes(keyword)
        );

        this.setData({
            filteredTemplates: filtered
        });
    },

    // 切换排序方式
    toggleSort() {
        const newSort = this.data.sortOrder === 'default' ? 'recent' : 'default';
        let sorted = [...this.data.filteredTemplates];

        if (newSort === 'default') {
            sorted.sort((a, b) => {
                // 默认模板优先
                if (a.is_default !== b.is_default) {
                    return b.is_default - a.is_default;
                }
                // 更新时间降序
                return new Date(b.updated_at) - new Date(a.updated_at);
            });
        } else {
            // 最近更新在前
            sorted.sort((a, b) => new Date(b.updated_at) - new Date(a.updated_at));
        }

        this.setData({
            sortOrder: newSort,
            filteredTemplates: sorted
        });
    },

    // 填报按钮点击
    onFillRecord(e) {
        const templateId = e.currentTarget.dataset.id;
        wx.navigateTo({
            url: `/pages/dailyperformance/create/index?template_id=${templateId}`
        });
    },

    // 查看今日记录
    viewTodayRecord() {
        if (this.data.todayRecord) {
            wx.navigateTo({
                url: `/pages/dailyperformance/history/detail?record_id=${this.data.todayRecord.record_id}`
            });
        }
    },

    // 删除模板方法
    async deleteTemplate(e) {
        const templateId = e.currentTarget.dataset.id;
        const templateName = e.currentTarget.dataset.name || '该模板';

        // 确认删除
        wx.showModal({
            title: '删除确认',
            content: `确定要永久删除 ${templateName} 吗？此操作不可撤销！`,
            confirmColor: '#ff0000',
            success: async (res) => {
                if (res.confirm) {
                    try {
                        wx.showLoading({
                            title: '删除中...'
                        });

                        // 调用删除接口
                        const res = await http.delete(`/performance_templates/${templateId}`);

                        if (res.status === 'success') {
                            wx.showToast({
                                title: '删除成功',
                                icon: 'success'
                            });

                            // 从模板列表中移除已删除的模板
                            const templates = this.data.templates.filter(
                                t => t.template_id != templateId
                            );

                            const filteredTemplates = this.data.filteredTemplates.filter(
                                t => t.template_id != templateId
                            );

                            this.setData({
                                templates,
                                filteredTemplates
                            });
                        } else {
                            wx.showToast({
                                title: res.message || '删除失败',
                                icon: 'none'
                            });
                        }
                    } catch (error) {
                        console.error('删除模板失败:', error);
                        wx.showToast({
                            title: '删除失败，请稍后重试',
                            icon: 'none'
                        });
                    } finally {
                        wx.hideLoading();
                    }
                }
            }
        });
    },

    // 跳转到历史记录
    goToHistory() {
        wx.navigateTo({
            url: '/pages/dailyperformance/records/records'
        });
    },

    // 创建新模板
    createTemplate() {
        wx.navigateTo({
            url: '/pages/dailyperformance/template/template'
        });
    }
});